<?php

class uyeler extends CI_Model
{
	
	protected $tableName = "uyeler";
	
	public function __construct()
	{
		parent::__construct();
		
		$this->load->library("input");
		$this->load->library("config");
		
	}
	
	public function giris($kadi, $parola)
	{
		if($kadi == "" || $parola == "")
			show_error("Kullanıcı adı veya Parola boş bırakılamaz.");
		
		$query = $this->db->get_where($this->tableName, array("kullanici_adi"=>$kadi, "parola"=>$parola));
		
		if($query->num_rows > 0)
		{
			$uye = $query->row();
			
			$this->kullanici_adi = $uye->kullanici_adi;
			
			$cookie = array(
                   'name'   => 'diliminucunda_oturum',
                   'value'  => md5($uye->kullanici_adi.$this->config->item("encryption_key"))."@&".$uye->kullanici_adi,
                   'expire' => '86500',
			);
			$this->input->set_cookie($cookie);
			return True;
		}
		else
		{
			return False;
		}
	}
	
	public function kayit($user)
	{
		$query = $this->db->insert($this->tableName, $user);
		
		if ($query)
		{
			$this->giris($user["kullanici_adi"], $user["parola"]);
			return true;
		}
		else
		{
			return false;
		}
	}
	
	public function cikis()
	{
		$cookie = array('name'=>"diliminucunda_oturum", 'value'=>"");
		$this->input->set_cookie($cookie);
	}
	
	public function aktivasyon_kontrol($kod)
	{
		$query = $this->db->get_where($this->tableName, array("aktivasyon_kodu"=>$kod));
		
		if($query->num_rows() > 0)
		{
			return True;
		}
	}
	
	public function aktivasyon_olustur()
	{
		$len = 64;
		$chars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789';
	    $string = '';
		
	    for ($i = 0; $i < $len; $i++)
	    {
	        $pos = rand(0, strlen($chars)-1);
	        $string .= $chars{$pos};
	    }
		
	    return $string;
	}
	
	public function kadi_kontrol($kadi)
	{
		$query = $this->db->get_where($this->tableName, array("kullanici_adi"=>$kadi));
		
		if($query->num_rows() > 0)
		{
			return True;
		}
	}
	
	public function email_kontrol($email)
	{
		$query = $this->db->get_where($this->tableName, array("email"=>$email));
		
		if($query->num_rows() > 0)
		{
			return True;
		}
	}
	
	public function girdi()
	{
		if($this->input->cookie("diliminucunda_oturum") == "")
		{
			return False;
		}
		else
		{
			$bilgi = $this->input->cookie("diliminucunda_oturum");
			$bilgi = explode("@&", $bilgi);
			
			$kullanici_adi = str_replace(";", "", $bilgi[1]);
			$kripto = $bilgi[0];
			
			if($this->kadi_kontrol($kullanici_adi))
			{
				if(md5($kullanici_adi.$this->config->item("encryption_key")) == $kripto)
				{
					return True;
				}
				else
				{
					return False;
				}
			}
		}
	}
	
	public function cookidenKadi()
	{
		$bilgi = $this->input->cookie("diliminucunda_oturum");
		$bilgi = explode("@&", $bilgi);
		
		$kullanici_adi = str_replace(";", "", $bilgi[1]);
		
		return $kullanici_adi;
	}
	
	public function iddenKadi($id)
	{
		$query = $this->db->get_where($this->tableName, array("id"=>$id));
		
		if($query->num_rows() > 0)
		{
			$uye = $query->row();
			return $uye->kullanici_adi;
		}
		else
		{
			show_error("Üye Bilgisi alımında bir hata meydana geldi.");
		}	
	}
	
	public function al($anahtar, $kadi = "")
	{
		if($kadi == "")
		{
			$kadi = $this->cookidenKadi();
		}
		
		$query = $this->db->get_where($this->tableName, array("kullanici_adi"=>$kadi));
		
		if($query->num_rows() > 0)
		{
			$uye = $query->row();
			return $uye->$anahtar;
		}
		else
		{
			show_error("Üye Bilgisi alımında bir hata meydana geldi.");
		}		
	}
	
	
	
	
}

?>
